A Usage Analysis with Bounded Usage Polymorphism and Subtyping
نویسندگان
چکیده
Previously proposed usage analyses have proved not to scale up well for large programs. In this paper we present a powerful and accurate type based analysis designed to scale up for large programs. The key features of the type system are usage subtyping and bounded usage polymorphism. Bounded polymorphism can lead to huge constraint sets and to express constraints compactly we introduce a new expressive form of constraints which allows constraints to be represented compactly through calls to constraint abstractions.
منابع مشابه
Polymorphism, Subtyping, Whole Program Analysis and Accurate Data Types in Usage Analysis
There are a number of choices to be made in the design of a type based usage analysis. Some of these are: Should the analysis be monomorphic or have some degree of polymorphism? What about subtyping? How should the analysis deal with user defined algebraic data types? Should it be a whole program analysis? Several researchers have speculated that these features are important but there has been ...
متن کاملSimple Usage Polymorphism
We present a novel inference algorithm for a type system featuring subtyping and usage (annotation) polymorphism. This algorithm infers simply-polymorphic types rather than the constrained-polymorphic types usual in such a setting; it achieves this by means of constraint approximation. The algorithm is motivated by practical considerations and experience of a previous system, and has been imple...
متن کاملTermination in a π-calculus with subtyping
We present a type system to guarantee termination of π-calculus processes that exploits input/output capabilities and subtyping, as originally introduced by Pierce and Sangiorgi, in order to analyse the usage of channels. Our type system is based on Deng and Sangiorgi’s level-based analysis of processes. We show that the addition of i/o-types makes it possible to typecheck processes where a for...
متن کاملIntersection Types and Bounded Polymorphism
Intersection types and bounded quantiication are complementary extensions of a rst-order programming language with subtyping. We deene a typed-calculus combining these extensions, illustrate its unusual properties, and develop basic proof-theoretic and semantic results leading to algorithms for subtyping and typechecking.
متن کاملParametricity as Subtyping (preliminary Report)
A polymorphic function is parametric if it has uniform behavior for all type parameters. This property is useful when writing, reasoning about, and compiling functional programs. We show how to syntactically deene and reason about parametricity in a language with intersection types and bounded polymorphism. Within this framework, parametricity is subtyping, and reasoning about para-metricity be...
متن کامل